/**
 * public 公有，默认
 * protected 受保护
 * private 私有的
 * readonly 只读
 */

{
  class User {
    constructor(
      // readonly 可以访问，一旦确定不能修改
      readonly id: number,
      // 可以访问，但不能外部修改
      protected username: string,
      // 外部包括子类不能访问，也不可修改
      private password: string
    ) {

    }

    method() {
      console.log(this.password);
      console.log(this.username);
    }

    setPassword(password: string) {
      // 暴露一个方法修改
    }

    set pwd(password: string) {
      if (password.length >= 6) {
        this.password = password
      }
    }

    get o(): string {
      return this.username + 'usda'
    }
  }

  class VIP extends User {
    method() {
      console.log(this.username);
      // 报错
      // console.log(this.password);

    }
  }


  let user = new User(1, 'mt', '123');

  user.id;
  // 报错
  // user.id = 1
  user.pwd = '123456';
  console.log(user);

  console.log(user.o);

}